﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using DTO;
using System.Data;

namespace DAO
{
    public class ThauSachDAO
    {
        DataProvider provider;

        public ThauSachDAO()
        {
            provider = new DataProvider();
        }

        public int ThemThauSach(ThauSachDTO thauSach)
        {
           
            string sqlStatement = "INSERT INTO ThauSach(TenThauSach, NgayThangNamBatDau, ThoiGianBatDau, KhoangThoiGianDienRaDauThau, SoTienCTYRaThau, SoTienCuaNhaCungCapTraThau, LanDauThauThu, MaTaiKhoan, DaDuyet, DaXoa)"
                + " VALUES (N'" + thauSach.TenThauSach + "', '" + thauSach.NgayThangNamBatDau + "', '" + thauSach.ThoiGianBatDau
                + "', " + thauSach.KhoangThoiGianDienRaDauThau + ", " + thauSach.SoTienCTYRaThau + ", " + thauSach.SoTienCuaNhaCungCapTraThau
                + ", " + thauSach.LanDauThauThu + ", " + thauSach.MaTaiKhoan + ", 0, 0)";

            return provider.ExecuteNonQuery(sqlStatement);
        }

        public int CapNhatThauSach(ThauSachDTO thauSach)
        {
            string sqlStatement = "UPDATE ThauSach SET TenThauSach='" + thauSach.TenThauSach + "', NgayThangNamBatDau='" + thauSach.NgayThangNamBatDau
                + "', ThoiGianBatDau='" + thauSach.ThoiGianBatDau + "', KhoangThoiGianDienRaDauThau=" + thauSach.KhoangThoiGianDienRaDauThau
                + ", SoTienCTYRaThau=" + thauSach.SoTienCTYRaThau + ", SoTienCuaNhaCungCapTraThau=" + thauSach.SoTienCuaNhaCungCapTraThau
                + ", LanDauThauThu=" + thauSach.LanDauThauThu + ", MaTaiKhoan=" + thauSach.MaTaiKhoan 
                + ", DaDuyet=" + thauSach.DaDuyet + " WHERE MaThauSach=" + thauSach.MaThauSach;
            
            return provider.ExecuteNonQuery(sqlStatement);
        }

        public int XoaThauSach(ThauSachDTO thauSach)
        {

            string sqlStatement = "UPDATE ThauSach SET SoTienCuaNhaCungCapTraThau=" + thauSach.SoTienCuaNhaCungCapTraThau + ", LanDauThauThu=" + thauSach.LanDauThauThu + ", MaTaiKhoan="+thauSach.MaTaiKhoan+" WHERE MaThauSach=" + thauSach.MaThauSach;

            return provider.ExecuteNonQuery(sqlStatement);
        }

        public ArrayList LayDanhSachThauSach()
        {
            ArrayList arrSach = new ArrayList();
            try
            {
                string query = "SELECT * FROM ThauSach";
                DataTable dt = new DataTable();
                dt = provider.ExecuteQuery(query);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    ThauSachDTO item = new ThauSachDTO();

                    item.MaThauSach = int.Parse(dt.Rows[i].ItemArray[0].ToString());
                    item.TenThauSach = dt.Rows[i].ItemArray[1].ToString();
                    item.NgayThangNamBatDau = dt.Rows[i].ItemArray[2].ToString();
                    item.ThoiGianBatDau = dt.Rows[i].ItemArray[3].ToString();
                    item.KhoangThoiGianDienRaDauThau = int.Parse(dt.Rows[i].ItemArray[4].ToString());
                    item.SoTienCTYRaThau = float.Parse(dt.Rows[i].ItemArray[5].ToString());
                    item.SoTienCuaNhaCungCapTraThau = float.Parse(dt.Rows[i].ItemArray[6].ToString());
                    item.LanDauThauThu = int.Parse(dt.Rows[i].ItemArray[7].ToString());
                    item.MaTaiKhoan = int.Parse(dt.Rows[i].ItemArray[8].ToString());
                    item.DaDuyet = bool.Parse(dt.Rows[i].ItemArray[9].ToString());
                    item.DaXoa = bool.Parse(dt.Rows[i].ItemArray[10].ToString());

                    arrSach.Add(item);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Error: " + ex.Message);
            }
            return arrSach;
        }
        public ThauSachDTO LayThauSachTheoMaThauSach(string ma)
        {
            ThauSachDTO item = new ThauSachDTO();

            string sqlStatement = "SELECT * FROM ThauSach WHERE MaThauSach=" + ma;
            DataTable dt = provider.ExecuteQuery(sqlStatement);
            if (dt != null)
            {
                item.MaThauSach = int.Parse(dt.Rows[0].ItemArray[0].ToString());
                item.TenThauSach = dt.Rows[0].ItemArray[1].ToString();
                item.NgayThangNamBatDau = dt.Rows[0].ItemArray[2].ToString();
                item.ThoiGianBatDau = dt.Rows[0].ItemArray[3].ToString();
                item.KhoangThoiGianDienRaDauThau = int.Parse(dt.Rows[0].ItemArray[4].ToString());
                item.SoTienCTYRaThau = float.Parse(dt.Rows[0].ItemArray[5].ToString());
                item.SoTienCuaNhaCungCapTraThau = float.Parse(dt.Rows[0]["SoTienCuaNhaCungCapTraThau"].ToString());
                item.LanDauThauThu = int.Parse(dt.Rows[0].ItemArray[7].ToString());
                item.MaTaiKhoan = int.Parse(dt.Rows[0].ItemArray[8].ToString());
                item.DaDuyet = bool.Parse(dt.Rows[0].ItemArray[9].ToString());
                item.DaXoa = bool.Parse(dt.Rows[0].ItemArray[10].ToString());
            }
            return item;
        }
    }
}
